# 定义学生信息系统管理类 StudentCMS
# 1 init方法 student_list=[]
# 2 显示界面 @staticmethod show_info()

# 3 循环显示功能菜单 start()
# 4 测试功能

# 1 添加学员 add_student()
    # 1 创建学生对象mystu / 2 添加到student_list列表中
# 2 修改学员 update_student()
    # 1 输入学员姓名update_name / 2 遍历学员信息 修改
# 3 删除学员 del_student()
    # 1 输入要删除的学员del_name / 2 查找学员, 找到就删除
# 4 查询某个学员 search_student()
    # 1 输入要查询的学员姓名search_name / 2 查找学员, 找到就显示
# 5 显示所有学员信息 show_all_student()
    # 1 遍历列表  2 输出每个学员信息
# 6 保存学员信息 save_student()
    # 1 打开文件-写方式  # 2 准备数据 写数据 # 3 关闭文件
    # listdata / str([student.__dict__ for student in self.student_list])
# 7 加载文件中的学员信息 load_data(self)
    # 1 打开文件 / 2 读取数据 转成student_list / 3 关闭文件
    # data=myf.read() / if len(data)==: data='[]'/ listdata=eval(data)


from dm01_student import Student
import time


class StudentCMS(object):
    def __init__(self):
        self.student_list = []


    # 显示界面
    @staticmethod
    def show_info():
        print("*" * 40)
        print('本学员管理系统V2.0完成一下操作:')
        print('\t1.添加学员')
        print('\t2.修改学员')
        print('\t3.删除学员')
        print('\t4.查询某个学员')
        print('\t5.显示所有学员')
        print('\t6.保存学员')
        print('\t0.退出系统')
        print("*" * 40)
        pass

    def add_student(self):
        # 1 创建学生对象mystu
        name = input('请输入姓名:')
        age = input('请输入年龄:')
        gender = input('请输入性别:')
        mobile = input('请输入电话:')
        des = input('请输入其他信息:')
        s1 = Student(name, age, gender, mobile, des)

        # 2 添加到student_list列表中
        self.student_list.append(s1)

    def update_student(self):
        # 2 修改学员 update_student()
        # 1 输入学员姓名update_name
        update_name = input('请输入要修改的名称')

        #  遍历学员信息 修改
        for stu in self.student_list:
            if stu.name == update_name:
                stu.age = input("请输入年龄")    # shift+option  (shift+alt)
                stu.gender = input("请输入性别")
                stu.mobile = input("请输入电话")
                stu.des = input("请输入描述信息")
                print(f'修改{ stu.name}成功')
                break
                pass
        else:
            print('查无此人')

    def del_student(self):
        # 1 输入要删除的学员del_name
        del_name =  input('请输入要删除的学生姓名')

        # 2 查找学员, 找到就删除
        for stu in self.student_list:
            if stu.name == del_name:
                self.student_list.remove(stu)
                print(f'删除成功{stu.name}')
                break
        else:
            print('查无此人')


    def search_student(self):
        # 1 输入要查询的学员姓名search_name / 2 查找学员, 找到就显示
        pass

    def show_all_student(self):
        # 1 遍历列表  # 2 输出每个学员信息
        print(f'\t姓名\t年龄\t性别\t电话\t描述信息')

        for stu in self.student_list:
            print(f"\t{stu.name}\t{stu.age}\t{stu.gender}\t{stu.mobile}\t{stu.des}")
        pass

    def save_student(self):
        # 1 打开文件-写方式  # 2 准备数据 写数据 # 3 关闭文件
        # listdata / str([student.__dict__ for student in self.student_list])
        pass

    # 7 加载文件中的学员信息 load_data(self)
    # 1 打开文件 / 2 读取数据 转成student_list / 3 关闭文件
    # data=myf.read() / if len(data)==: data='[]'/ listdata=eval(data)

    def start(self):

        s1 = Student('张三', 21, "男", "111131111", "爱好AI")
        s2 = Student('李四', 22, "男", "111131111", "爱好AI")
        s3 = Student('王五', 23, "女", "111131111", "爱好AI")
        self.student_list.append(s1)
        self.student_list.append(s2)
        self.student_list.append(s3)

        while True:
            time.sleep(1)
            print('\n')
            StudentCMS.show_info()
            num = int(input("请输入你的操作序号(数字)"))

            if num == 1:
                print('请添加学员 ')
                self.add_student()

            elif  num == 2:
                print('修改学员')
                self.update_student()

            elif  num == 3:
                print("删除学员")
                self.del_student()

            elif  num == 4:
                print('查询某个学员')
                self.search_student()

            elif  num == 5:
                print('显示所有学员信息')
                self.show_all_student()

            elif  num == 6:
                # 6  save_student()
                print('保存学员信息')
                self.save_student()

            elif  num == 0:
                str = input('你确定要退出吗(Y/y)?')
                if str.lower() == "y":
                    break
            else:
                print('请你输入数字1~6')


if __name__ == '__main__':
    studentcms = StudentCMS()
    # print(studentcms.student_list)
    studentcms.start()

